package org.jsola.hr.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.vo.BaseTreeVO;

import java.util.Date;
import java.util.List;

import static org.jsola.core.example.BaseExample.*;
import static org.jsola.hr.example.DepInfoExample.E_CHILD_COUNT;
import static org.jsola.hr.example.DepInfoExample.E_CHILD_LIST;
import static org.jsola.hr.example.DepInfoExample.E_EMP_CHILDREN_COUNT;
import static org.jsola.hr.example.DepInfoExample.E_EMP_DIRECT_COUNT;
import static org.jsola.hr.example.DepInfoExample.E_HAS_CHILD;
import static org.jsola.hr.example.DepInfoExample.N_CHILD_COUNT;
import static org.jsola.hr.example.DepInfoExample.N_CHILD_LIST;
import static org.jsola.hr.example.DepInfoExample.N_EMP_CHILDREN_COUNT;
import static org.jsola.hr.example.DepInfoExample.N_EMP_DIRECT_COUNT;
import static org.jsola.hr.example.DepInfoExample.N_HAS_CHILD;
import static org.jsola.hr.example.PositionInfoExample.E_CODE;
import static org.jsola.hr.example.PositionInfoExample.E_COMPANY_ID;
import static org.jsola.hr.example.PositionInfoExample.E_DESC;
import static org.jsola.hr.example.PositionInfoExample.E_FORMAL_NUM;
import static org.jsola.hr.example.PositionInfoExample.E_NAME;
import static org.jsola.hr.example.PositionInfoExample.E_TYPE;
import static org.jsola.hr.example.PositionInfoExample.N_CODE;
import static org.jsola.hr.example.PositionInfoExample.N_COMPANY_ID;
import static org.jsola.hr.example.PositionInfoExample.N_DESC;
import static org.jsola.hr.example.PositionInfoExample.N_FORMAL_NUM;
import static org.jsola.hr.example.PositionInfoExample.N_NAME;
import static org.jsola.hr.example.PositionInfoExample.N_TYPE;
import static org.jsola.hr.example.PositionInfoExample.*;

/**
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "【岗位信息】详情展示对象")
@Data
public class PositionInfoVO extends BaseTreeVO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_ID, example = E_ID)
    private String id;

    @ApiModelProperty(notes = N_TYPE, example = E_TYPE)
    private Integer type;

    @ApiModelProperty(notes = N_NAME, example = E_NAME)
    private String name;

    @ApiModelProperty(notes = N_CODE, example = E_CODE)
    private String code;

    @ApiModelProperty(notes = N_REMARK, example = E_REMARK)
    private String remark;

    @ApiModelProperty(notes = N_DESC, example = E_DESC)
    private String desc;

    @ApiModelProperty(notes = N_FORMAL_NUM, example = E_FORMAL_NUM)
    private Integer formalNum;

    @ApiModelProperty(notes = N_COMPANY_ID, example = E_COMPANY_ID)
    private String companyId;

    @ApiModelProperty(notes = N_SITE_ID, example = E_SITE_ID)
    private String siteId;

    @ApiModelProperty(notes = N_GMT_CREATE, example = E_GMT_CREATE)
    private Date gmtCreate;

    @ApiModelProperty(notes = N_CREATE_USER_ID, example = E_CREATE_USER_ID)
    private String createUserId;

    @ApiModelProperty(notes = N_GMT_MODIFIED, example = E_GMT_MODIFIED)
    private Date gmtModified;

    @ApiModelProperty(notes = N_MODIFIED_USER_ID, example = E_MODIFIED_USER_ID)
    private String modifiedUserId;

    @ApiModelProperty(notes = N_IS_VALID, example = E_IS_VALID)
    private Boolean valid;

    @ApiModelProperty(notes = N_LEVEL, example = E_LEVEL)
    private Integer level;

    @ApiModelProperty(notes = N_SORT, example = E_SORT)
    private Integer sort;

    @ApiModelProperty(notes = N_PARENT_ID, example = E_PARENT_ID)
    private String parentId;

    @ApiModelProperty(notes = N_CHILD_COUNT, example = E_CHILD_COUNT)
    private String hasChildCount;

    @ApiModelProperty(notes = N_CHILD_COUNT, example = E_CHILD_COUNT)
    private Integer childCount;

    @ApiModelProperty(notes = N_HAS_CHILD, example = E_HAS_CHILD)
    private Boolean hasChild;

    @ApiModelProperty(notes = N_CHILD_LIST, example = E_CHILD_LIST)
    private List<PositionInfoListVO> positionChildList;

    @ApiModelProperty(notes = N_EMP_DIRECT_COUNT, example = E_EMP_DIRECT_COUNT)
    private Integer empDirectCount;

    @ApiModelProperty(notes = N_EMP_CHILDREN_COUNT, example = E_EMP_CHILDREN_COUNT)
    private Integer empChildrenCount;

}

